package com.wgy.day38方法引用.通过super引用父类的成员方法;

/**
 * Created by pc on 2020/12/14 22:08
 * Description: LearningJava
 */
//定义一个子类
public class Man extends Human {
    //子类重写父类方法
    @Override
    public  void sayHello(){
        System.out.println("hello,我是man");
    }

    //定义一个方法.参数传递Greetable接口
    public  void method(Greetable g){
        g.greet();
    }

    //定义一个方法,调用method方法
    public  void show(){
        //调用method,方法的参数是一个函数式接口,所以可以传递Lambda
        method(()->{
            //创建父类对象
            Human h=new Human();
            //调用父类的方法
            h.sayHello();
        });


        //调用method,方法的参数是一个函数式接口,所以可以传递Lambda
        //因为有子父类关系,所以存在一个关键字super,代表父类,所以我们可以直接使用super 调用父类的成员方法
        method(()->{super.sayHello();});

        //调用method,方法的参数是一个函数式接口,所以可以传递Lambda
        //因为有子父类关系,所以存在一个关键字super,代表父类,所以我们可以直接使用super 调用父类的成员方法
        //super是已经存在的,父类的成员方法也是已经存在的,所以我们可以直接使用super引用父类的成员方法
        method(super::sayHello);


    }

    public static void main(String[] args) {
        new Man().show();
    }

}
